﻿using System;
using System.Reflection;
using YawetagLib.Services;

namespace YawetagLib.Facade
{
    public interface IFacadeFactory : IDisposable
    {
        void RegisterService<TService>() where TService : class, IService;
        void RegisterServices(Assembly assembly);
        void UnRegisterService<TService>() where TService : class, IService;
        void UnRegisterServices(Assembly assembly);

        TFacade Get<TFacade>() where TFacade : IFacade;
    }
}
